package com.usefullc.english.param;
import com.usefullc.common.domain.BaseDomain;
import com.usefullc.common.enums.ValidActionEnum;
import com.usefullc.common.enums.ValidTypeEnum;
import com.usefullc.system.validator.UsefulPropertyVerify;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 内容参数实体
 * @author: 星空
 * @date: 2022-08-07
 */
@ApiModel
@Data
public class ContentParam extends BaseDomain {

//useful_auto_generate_section_start

    @UsefulPropertyVerify(required=true,action = ValidActionEnum.UPDATE)
    @ApiModelProperty(notes = "类目")
    private Long categoryId;

    @UsefulPropertyVerify()
    @ApiModelProperty(notes = "ID")
    private Long id;

    @UsefulPropertyVerify(minLen=1, required=true, maxLen=100)
    @ApiModelProperty(notes = "标题")
    private String title;

    @UsefulPropertyVerify()
    @ApiModelProperty(notes = "创建时间")
    private Date gmtCreate;

    @UsefulPropertyVerify()
    @ApiModelProperty(notes = "修改时间")
    private Date gmtModified;

    @UsefulPropertyVerify()
    @ApiModelProperty(notes = "作者")
    private Long userId;

    @UsefulPropertyVerify()
    @ApiModelProperty(notes = "删除状态")
    private Boolean delState;

    @UsefulPropertyVerify(minLen=1, maxLen=200)
    @ApiModelProperty(notes = "关键字")
    private String keywords;

    @UsefulPropertyVerify(minLen=1, maxLen=1000)
    @ApiModelProperty(notes = "描述")
    private String description;

    @UsefulPropertyVerify(minLen=1, maxLen=3000)
    @ApiModelProperty(notes = "内容")
    private String content;

    @UsefulPropertyVerify(min=-2147483648, max=2147483647, required=true)
    @ApiModelProperty(notes = "原创")
    private Integer original;

    @UsefulPropertyVerify(min=-2147483648, max=2147483647)
    @ApiModelProperty(notes = "来源")
    private Integer source;

    @UsefulPropertyVerify(min=-2147483648, max=2147483647, required=true)
    @ApiModelProperty(notes = "开启回复")
    private Integer reply;

    @UsefulPropertyVerify()
    @ApiModelProperty(notes = "发布时间")
    private Date gmtRelease;

    @UsefulPropertyVerify(min=-2147483648, max=2147483647, required=true)
    @ApiModelProperty(notes = "置顶")
    private Integer top;

    @UsefulPropertyVerify()
    @ApiModelProperty(notes = "审核时间")
    private Date gmtAudit;

    @UsefulPropertyVerify(min=-2147483648, max=2147483647, required=true)
    @ApiModelProperty(notes = "推荐")
    private Integer recommend;

    @UsefulPropertyVerify(min=-2147483648, max=2147483647)
    @ApiModelProperty(notes = "点赞数")
    private Integer likeNum;

    @UsefulPropertyVerify(min=-2147483648, max=2147483647)
    @ApiModelProperty(notes = "回复数")
    private Integer replyNum;

//    @UsefulPropertyVerify(minLen=2, maxLen=32)
//    @ApiModelProperty(notes = "标签")
//    private String tags;

    @UsefulPropertyVerify(min=-2147483648, max=2147483647, required=true)
    @ApiModelProperty(notes = "类型")
    private Integer type;

    @UsefulPropertyVerify(min=-2147483648, max=2147483647)
    @ApiModelProperty(notes = "阅读数")
    private Integer readNum;

    @UsefulPropertyVerify(minLen=2, maxLen=200)
    @ApiModelProperty(notes = "图片")
    private String imgUrl;

    @UsefulPropertyVerify(min=-2147483648, max=2147483647)
    @ApiModelProperty(notes = "分享数")
    private Integer shareNum;

    @UsefulPropertyVerify(minLen=1, maxLen=500)
    @ApiModelProperty(notes = "视频播放地址")
    private String videoUrl;

    @UsefulPropertyVerify(min=0, max=10)
    @ApiModelProperty(notes = "状态")
    private Integer status;

    @UsefulPropertyVerify(min=0, max=1)
    @ApiModelProperty(notes = "投稿")
    private Integer contribution;

    @UsefulPropertyVerify(min=0, max=10)
    @ApiModelProperty(notes = "投稿状态")
    private Integer contributionStatus;

    @UsefulPropertyVerify(minLen=2, maxLen=300)
    @ApiModelProperty(notes = "内容地址")
    private String url;


//useful_auto_generate_section_end

    @UsefulPropertyVerify(min=0, max=3, minLen=2, maxLen=50)
    @ApiModelProperty(notes = "标签")
    private List<String> tags;
}
